package com.sinosoft.brokerchannel.base.utile;

import java.io.StringReader;

import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import com.sinosoft.brokerchannel.base.common.ChannelConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.InputSource;

/**
 * 需求名称：[非车理赔渠道平台]<br/>
 * 功能：XML处理工具类
 * @author shilk
 */
public class XmlUtils {
	
	public final static Logger logger = LoggerFactory.getLogger(XmlUtils.class);
    /**
     * 创建一个解析XML的工厂对象
     */
    private final static SAXParserFactory PARSE_FACTORY = SAXParserFactory.newInstance();
    
    /**
     * 	 
     *  需求名称：[非车理赔渠道平台]
     *  功能:[SAX解析XML，并且将XML转为JSON]
     *  @author [shilk]
     *  @date 2017年11月6日 下午1:49:33
     *  @param xml-待转换字符串；nodeName-第一个节点名称
     *  @return 返回JSON字符串
     */
    public static String readXML(String xml) throws BusinessException{
        try {
        	//创建一个解析助手类
            SAXParser parser=PARSE_FACTORY.newSAXParser();
           //创建一个解析XML的对象
            SaxHandler saxHandler = new SaxHandler();
            StringReader srReader = new StringReader(xml);
            InputSource source=new InputSource(srReader);  
            parser.parse(source, saxHandler);
            return saxHandler.getJsonStr();
        } catch (Exception e) {
        	logger.error("SAX readXML Exception",e);
			throw new BusinessException(ChannelConstants.ExceptionResult.XML2JSONERROR.getCode(),
					ChannelConstants.ExceptionResult.XML2JSONERROR.getMessage(),
					e);
        }
    }

    public static void main(String[] args) {

    }
}
